package com.ruoyi.video.mapper;

import com.ruoyi.video.domain.BusMemberInfo;
import com.ruoyi.video.domain.dto.PromDetailDTO;
import com.ruoyi.video.domain.vo.LoginParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MemberInfoMapper {

    /**
     * 查询会员信息
     *
     * @param memberId 会员ID
     * @return 会员信息
     */
    public BusMemberInfo selectMemberById(String memberId);

    /**
     * 查询会员信息
     *
     * @param memberIp 会员IP
     * @return 会员信息
     */
    public BusMemberInfo selectMemberByIp(String memberIp);

    /**
     * 查询会员信息
     *
     * @param promCode 会员推广码
     * @return 会员信息
     */
    public BusMemberInfo selectMemberByPromCode(String promCode);

    /**
     * 查询会员列表
     *
     * @param member 会员信息
     * @return 会员集合
     */
    public List<BusMemberInfo> selectMemberList(BusMemberInfo member);

    /**
     * 查询会员列表
     *
     * @param pMemberId 父会员（推广员）ID
     * @return 会员集合
     */
    List<BusMemberInfo> selectMemberListByPId(String pMemberId);

    /**
     * 查询会员列表
     *
     * @param pMemberId 父会员（推广员）ID
     * @param memberIp 会员IP
     * @return 会员集合
     */
    List<BusMemberInfo> selectMemberListByPIdAndIp(@Param("pMemberId") String pMemberId, @Param("memberIp") String memberIp);

    /**
     * 新增会员
     *
     * @param member 会员信息
     * @return 结果
     */
    public int insertMember(BusMemberInfo member);

    /**
     * 修改会员
     *
     * @param member 会员信息
     * @return 结果
     */
    public int updateMember(BusMemberInfo member);

    /**
     * 批量删除会员信息
     *
     * @param memberIds 需要删除的会员ID
     * @return 结果
     */
    public int deleteMemberByIds(String[] memberIds);

    /**
     * 查询推广统计
     *
     * @param pMemberId 会员ID
     * @return 推广统计
     */
    List<PromDetailDTO> selectPromStatisticsByPMemberId(String pMemberId);

}
